#ifndef BUILDING_H_
#define BUILDING_H_
class Building {
private:
  int no;
  int numLayers;
  int numRooms;
  double totalArea;

public:
  Building(int no, int numLayers, int numRooms, double totalArea)
      : no(no), numLayers(numLayers), numRooms(numRooms),
        totalArea(totalArea){};
};

class TeachBuilding : public Building {
public:
  TeachBuilding(int teachBuildingNo, int numLayers, int numClasses,
                double totalArea)
      : Building(teachBuildingNo, numLayers, numClasses, totalArea){};
  TeachBuilding(const Building &b) : Building(b){};
};

class DormBuilding : public Building {
private:
  int maxNumStudents;

public:
  DormBuilding(int teachBuildingNo, int numLayers, int numClasses,
               double totalArea, int maxNumStudents)
      : Building(teachBuildingNo, numLayers, numClasses, totalArea),
        maxNumStudents(maxNumStudents){};
  DormBuilding(const Building &b, int maxNumStudents)
      : Building(b), maxNumStudents(maxNumStudents){};
};

#endif